package view;

import dao.ProductDAO;
import dao.UserDAO;
import model.Admin;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * 管理员主界面类，提供管理员操作入口
 */
public class AdminMainFrame extends JFrame {
    private Admin currentAdmin;          // 当前登录管理员
    private JLabel welcomeLabel;         // 欢迎标签
    private JButton productManageButton; // 商品管理按钮
    private JButton userManageButton;    // 用户管理按钮
    private JButton orderManageButton;   // 订单管理按钮
    private JButton logoutButton;        // 退出登录按钮

    /**
     * 构造方法，初始化管理员主界面
     * @param admin 当前登录管理员
     */
    public AdminMainFrame(Admin admin) {
        currentAdmin = admin;

        // 设置窗口标题和大小
        setTitle("在线购物系统 - 管理员主界面");
        setSize(500, 400);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);

        // 创建面板并设置布局
        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());
        panel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));

        // 创建欢迎标签
        welcomeLabel = new JLabel("欢迎，管理员 " + admin.getAdminName() + "！");
        welcomeLabel.setHorizontalAlignment(SwingConstants.CENTER);
        welcomeLabel.setFont(new Font("Arial", Font.BOLD, 16));

        // 创建按钮面板并设置布局
        JPanel buttonPanel = new JPanel();
        buttonPanel.setLayout(new GridLayout(4, 1, 10, 10));

        // 创建商品管理按钮并添加事件监听器
        productManageButton = new JButton("商品管理");
        productManageButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 打开商品管理界面
                new ProductManageFrame();
            }
        });

        // 创建用户管理按钮并添加事件监听器
        userManageButton = new JButton("用户管理");
        userManageButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 打开用户管理界面
                new UserManageFrame();
            }
        });

        // 创建订单管理按钮并添加事件监听器
        orderManageButton = new JButton("订单管理");
        orderManageButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 打开订单管理界面
                new OrderManageFrame();
            }
        });

        // 创建退出登录按钮并添加事件监听器
        logoutButton = new JButton("退出登录");
        logoutButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 提示确认退出
                int option = JOptionPane.showConfirmDialog(AdminMainFrame.this, "确定要退出登录吗？", "确认", JOptionPane.YES_NO_OPTION);
                if (option == JOptionPane.YES_OPTION) {
                    // 关闭管理员主界面，返回管理员登录界面
                    dispose();
                    new AdminLoginFrame().setVisible(true);
                }
            }
        });

        // 将按钮添加到按钮面板
        buttonPanel.add(productManageButton);
        buttonPanel.add(userManageButton);
        buttonPanel.add(orderManageButton);
        buttonPanel.add(logoutButton);

        // 将欢迎标签和按钮面板添加到面板
        panel.add(welcomeLabel, BorderLayout.NORTH);
        panel.add(buttonPanel, BorderLayout.CENTER);

        // 将面板添加到窗口
        add(panel);

        // 显示管理员主界面
        setVisible(true);
    }
}